# ------------------------------------多选框操作-----------------------------------------

import time

from public.action import *
from public.business import *
from public.testData import *

# 打开dbshop后台
# 登录
# 点击“商品管理”
# 点击“管理商品”
# 选中第1个商品
# 选中第3个商品
# 选中最后1个商品
# 全部取消选中


dr = openBrowser(urlAdmin)  # 定义变量dr，使用自建函数openBrowser，打开变量urlAdmin中储存的网址，并返回给dr
DBshopLoginAdmin(dr)  # 使用自建函数DBshopLoginAdmin，登入DBshop网站
DBshopEnterMenu2(dr, "商品管理", "管理商品")  # 使用自建函数DBshopEnterMenu2，进入二级菜单"商品管理"-->"管理商品"
# 1、*****多选框与单选框一样，使用name定位一组元素*****(知识点·重点)
objs = dr.find_elements_by_name("goods_id[]")  # 使用elements定位到所有name为"goods_id[]"的多选框，并将列表返回到变量objs中（在html代码中，同一组的多选框，name值是一样的）
objs[0].click()  # 对objs中列表下标为0的多选框，执行点击的操作
time.sleep(2)  # 通过time.sleep函数，对网页进行强制强制等待 2 秒
objs[2].click()  # 对objs中列表下标为2的多选框，执行点击的操作
time.sleep(2)  # 通过time.sleep函数，对网页进行强制强制等待 2 秒
objs[-1].click()  # 对objs中列表下标为-1的多选框，执行点击的操作（列表中下标为-1的值，等于列表中最后一个值）
# 2、*****多选框的checked属性可以判断是否有勾选，True代表已勾选，False代表未勾选*****（知识点·重点）
# 全部取消选中
for obj in objs:  # 使用for in循环，遍历变量objs中的列表(依次读取列表objs中的元素)，将值返回到变量obj中
    if obj.get_property("checked") == True:  # 如果在变量obj的checked属性值进行提取，如果值为真时，执行下面代码的操作
        obj.click()  # 对筛选出来的变量obj中的多选框，执行点击的操作
# 全部勾选
for obj in objs:  # 使用for in循环，遍历变量objs中的列表(依次读取列表objs中的元素)，将值返回到变量obj中
    if obj.get_property("checked") == False:  # 如果在变量obj的checked属性值进行提取，如果值为假时，执行下面代码的操作
        obj.click()  # 对筛选出来的变量obj中的多选框，执行点击的操作